1. Field
The presently disclosed embodiments relate generally to power conservation in a computing device, and more specifically to coordination of processes within a computing device.
2. Background
Some operating systems isolate (or sandbox) applications from each other to improve security and system stability. Sandboxing precludes applications from directly communicating with each other or being coordinated via a background service such as a daemon. Sandboxing can also preclude IP loopback communications, wherein two consenting applications use a loopback interface to communicate. Other forms of sandboxing can further preclude access to common system files. MICROSOFT'S WINDOWS 8 operating system, operating in METRO mode, is one example of an operating system that carries out some of the above forms of sandboxing.
Yet, coordination between applications can be a key to certain power saving methods. For instance, when various applications use a modem at different times, the modem may remain active for long periods despite only being in use for short bursts of time. Coordination between the applications can activate the modem for shorter periods of time, and less often, thus conserving device power. For example, if several applications use the radio to advertise their presence (e.g., peer-to-peer applications looking for peers on other devices), it could be beneficial for these applications to send discovery messages at substantially the same time. In this fashion, the radio need only be activated when the messages are jointly sent, and can remain off until the discovery messages need to be sent again. Without such coordination, each application would utilize the radio to transmit according to its own schedule resulting in frequent activations of the radio. In a worst case scenario the radio would not have a chance to power down or idle.
Other instances of application coordination can also reduce power or achieve other functionality. Coordination can make logic processes simpler to carry out. In an example, multiple applications may attempt to control an LED of a mobile device. Determining which application gets priority in this control is simplified if the requests for the LED arrive at substantially the same time. Thus, coordination of the requests can simplify the logic decision. This is just one of many instances where coordination of processes is beneficial for logic decisions.
There is therefore a need in the art for coordination of application processes on systems where sandboxing is implemented.